<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>ECF New and Noteworthy</title>
<link rel="stylesheet" href="http://www.eclipse.org/default_style.css" type="text/css">

</head>

<body bgcolor="#FFFFFF">
<table border=0 cellspacing=5 cellpadding=2 width="100%">
  <tbody>
    <tr>
      <td width="69%" class="bannertext">
        <font class="indextop style">eclipse communication framework</font>
        <br><br>
        <font class="indexsub">an eclipse runtime project</font>
        <br><br>
        <font class="indextop style2">New and Noteworthy</font><br>3.0.0 Release</font>
        <br><br><br>
        Return to <a href="downloads.php">ECF download page</a></br>
        <br><br>
        <a href="NewAndNoteworthy_2.0.0.html">New and Noteworthy for 2.0.0</a><br>
        <a href="NewAndNoteworthy_2.1.0.html">New and Noteworthy for 2.1.0</a><br>
        <br><br>
      </td>
      <td width="31%">
        <div align="center">
          <img src="../images/Idea.jpg" width="120" height="86" hspace="50" align="middle">
        </div>
      </td>
    </tr>
  </tbody>
</table>

<hr>

<table>
  <TR>
    <TD vAlign=top align=left width="30%">
        <P align=left>
	<B>Distributed OSGi</B>
        </P>
    </TD>
    <TD vAlign=top width="70%">
    <p>
    ECF 3.0 has support for a draft version a new <b>Distributed <a href="http://www.osgi.org">OSGi</a></b> standard.  The <a href="http://www.osgi.org/EEG/HomePage">OSGi Enterprise Experts group</a> has 
    created a <a href="http://www.osgi.org/download/osgi-4.2-early-draft3.pdf">DRAFT specification known as RFC119</a>, and ECF 3.0
    has implemented the latest available draft.  Note that RFC119 will change before OSGi 4.2 final 
    release, and this implies subsequent API changes for ECF's implementation to remain compatible with the final version of the specification.
    </p>
    <p>
    Here is a screenshot of debugging into the consumer of a simple 'hello' remote service
    </p>
    <p>
    <img src="images/helloclient1.png"/>
    </p>
    <p>
    Usage of this example remote service is described on <a href="http://wiki.eclipse.org/Getting_Started_with_ECF%27s_RFC119_Implementation">Getting Started with ECF's RFC119 Implementation</a>, as well
    as access to the source code.  
    </p>
    <p>
    Also available is an architecture diagram showing the relationship between various ECF components in <a href="http://wiki.eclipse.org/Distributed_OSGi_Services_with_ECF">Distributed OSGi Services with ECF</a>.
    </p>
    <p>
    Other features of the ECF implementation of RFC 119:
    <ul>
    <li>Asynchronous messaging via the <a href="http://wiki.eclipse.org/ECF_API_Docs">ECF remote services API</a></li>
    <li>Support for dynamic network discovery (as well as static discovery) via multiple providers (e.g. <a href="http://en.wikipedia.org/wiki/Service_Location_Protocol">SLP</a> and <a href="http://en.wikipedia.org/wiki/Bonjour_(software)">Bonjour/Zeroconf</a>) with the <a href="http://wiki.eclipse.org/ECF_API_Docs">ECF discovery API</a></li>
    <li>Support for <a href="http://eclipsesource.com/blogs/2009/02/21/rfc-119-and-ecf-part-2/">multiple transport providers</a> (e.g. r-OSGi, XMPP, ActiveMQ/JMS, ECF generic, Skype, JavaGroups, others).</li>
    <li>Extensibility...to allow new/other transport protocols to be used/introduced for both discovery and distribution, and to allow the <a href="http://wiki.eclipse.org/Discovery_and_Distribution_Listeners">customization of the RFC 119 implementation itself</a>.</li>
    </ul>
    </p>
    <p>
    See also an example implementation of the <a href="http://wiki.eclipse.org/Distributed_EventAdmin_Service">OSGi EventAdmin service</a> using ECF's shared object API, ActiveMQ (and other messaging providers), and efficient and scalable publish/subscribe messaging.
    </p>
       <br><br>
    </td>
  </TR>
  
  <TR>
    <TD vAlign=top align=left width="30%">
        <P align=left>
	<B>Discovery API</B>
        </P>
    </TD>
    <TD vAlign=top width="70%">
    <p>
    In addition to supporting the distributed OSGi implementation described above, a number of feature additions and were made to the <a href="http://wiki.eclipse.org/ECF_API_Docs">ECF Discovery API</a>.
    For technical details, see <a href="http://www.eclipsecon.org/2009/sessions?id=618">Distributed OSGi - The ECF Way</a>.
    </p>
    <p>
    The ECF service discovery view was overhauled to present more information about discovered network services, and to be much more extensible
    </p>
    <p>
    <img src="images/discoveryview1.png">
    </p>
       <br><br>
    </td>
  </TR>

  <TR>
    <TD vAlign=top align=left width="30%">
        <P align=left>
	<B>Twitter Client</B>
        </P>
    </TD>
    <TD vAlign=top width="70%">
    <p>
    Community-initiated work is underway on a Twitter client (called TweetHub) that uses ECF APIs, 
    as well as Eclipse RCP user interface technologies.  For details of this work, and to participate, see <a href="http://wiki.eclipse.org/TweetHub">here</a>.
    </p>
    <p>
    Here is a screen shot from a recent version of the TweetHub work
    </p>
    <p>
    <img src="images/TweetHub1.png">
    </p>
       <br><br>
    </td>
  </TR>

  <TR>
    <TD vAlign=top align=left width="30%">
        <P align=left>
	<B>User Search API</B>
        </P>
    </TD>
    <TD vAlign=top width="70%">
    <p>
    A user-search API was introduced to the <a href="http://wiki.eclipse.org/ECF_API_Docs">ECF Presence API</a> to allow for user searches
    </p>
    <p>
    <img src="images/usersearch1.png">
    </p>
       <br><br>
    </td>
  </TR>

  <TR>
    <TD vAlign=top align=left width="30%">
        <P align=left>
	<B>Extending Real-Time Shared Editing to Projects</B>
        </P>
    </TD>
    <TD vAlign=top width="70%">
    <p>
    An implementation of real-time synchronization of resources using the Eclipse Team API was done.  This allows the use of the Eclipse Team
    API to synchronize workspace resources in real-time using instant messaging protocols (like XMPP, others).  See <a href="http://blog.hantsuki.org/2009/05/10/extending-real-time-shared-editing-to-projects/">here for
    more description of the functionality</a>, and <a href="http://www.hantsuki.org/screencasts/ecf-team.htm">here for a screencast</a>.
    </p>
       <br><br>
    </td>
  </TR>

  <TR>
    <TD vAlign=top align=left width="30%">
        <P align=left>
	<B>Generalizing Real-time Shared Editing</B>
        </P>
    </TD>
    <TD vAlign=top width="70%">
    <p>
    As part of ECF 2.0, we introduced an Eclipse application called <a href="http://wiki.eclipse.org/DocShare_Plugin">Docshare</a>.  See also <a href="http://live.eclipse.org/node/543">this video</a>, showing the usage 
    of Docshare in a pair-programming context.
    </p>
    <p>
    For ECF 3.0, the approach used to perform real-time conflict detection and synchronization (<a href="http://en.wikipedia.org/wiki/Operational_transformation">Operational Transformation</a>), was abstracted away
    from the DocShare user interface, so that other applications can/could be created that took advantage of the underlying synchronization.  This generalization is represented
    by <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=234142">bug 234142</a>.
    </p>
    <p>
    To address this issue, we have created the <a href="http://www.eclipse.org/ecf/org.eclipse.ecf.docs/api/org/eclipse/ecf/sync/package-frame.html">ECF Sync API</a> for (synchronization).  This API is exposed as an OSGi service, and allows applications to 
    use the operational transformation algorithm in their own applications.  DocShare also has been back ported to use the ECF Sync API rather than have it's own OT implementation.
    </p>
       <br><br>
    </td>
  </TR>

  <TR>
    <TD vAlign=top align=left width="30%">
        <P align=left>
	<B>Future:  Google Wave Provider for ECF</B>
        </P>
    </TD>
    <TD vAlign=top width="70%">
    <p>
    ECF has started work on supporting the <a href="http://www.waveprotocol.org">Google Wave server-to-server protocol</a>.  ECF already has an XMPP provider implementation,
    as well as the sync API (using Operational Transformation) described above.  As Google Wave was just announced, and the protocol is not yet completely
    specified we have not completed this work, but anticipate it going quickly once the protocol is solidified.  See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=280347">this enhancement request</a> to participate in
    this work or track it as it proceeds.
    </p>
       <br><br>
    </td>
  </TR>

</table>

</body>
</html>
